//引入router
import {createRouter,createWebHashHistory} from "vue-router"
//用户登录界面导入
import Login from "../components/Login.vue"
//注册页面导入
import Regist from "../components/Regist.vue"
//用户个人信息页导入
import User from "../components/User.vue"
//用户详情信息页
import UserInfo from "../components/UserInfo.vue"
//用户修改密码页
import UserInfoPwd from "../components/UserInfoPwd.vue"
//用户修改信息页
import UserInfoAlter from "../components/UserInfoAlter.vue"


//用户充值界面导入
import UserDespoit from "../components/UserDespoit.vue"
//用户查询界面导入  
import UserQuerry from "../components/UserQuerry.vue"

//管理员信息页
import Admin from "../components/Admin.vue"


//管理员水电费管理界面
import AdminWE from "../components/AdminWE.vue"
//管理员水电费管理增加界面
import AdminWEAdd from "../components/AdminWEAdd.vue"
//管理员水电费管理修改界面
import AdminWEAlter from "../components/AdminWEAlter.vue"
//管理员水电费管理删除界面
import AdminWEDelete from "../components/AdminWEDelete.vue"
//管理员水电费管理查询界面
import AdminWEQuery from "../components/AdminWEQuery.vue"


//管理员用户管理界面
import AdminUser from "../components/AdminUser.vue"
// //管理员用户管理增加界面
import AdminUserAdd from "../components/AdminUserAdd.vue"
// //管理员用户管理修改界面
import AdminUserAlter from "../components/AdminUserALter.vue"
// //管理员用户删除界面
import AdminUserDelete from "../components/AdminUserDelete.vue"
// //管理员用户查询界面
import AdminUserQuery from "../components/AdminUserQuery.vue"



//管理员宿舍管理界面
import AdminDormitory from "../components/AdminDormitory.vue"
//管理员宿舍管理界面
import AdminDormitoryAdd from "../components/AdminDormitoryAdd.vue"
//管理员宿舍管理界面
import AdminDormitoryAlter from "../components/AdminDormitoryAlter.vue"
//管理员宿舍管理界面
import AdminDormitoryDelete from "../components/AdminDormitoryDelete.vue"
//管理员宿舍管理界面
import AdminDormitoryQuery from "../components/AdminDormitoryQuery.vue"



//导入pinia数据
import {userInfoStore}from "../stores/UserInfoPinaStores";
import { getTransitionRawChildren } from "vue"




const router=createRouter(
    {
        history:createWebHashHistory(),
        routes:[
            //普通用户路由
            {
                path:"/",
                components:{
                    //登录页面
                    UserRouter:Login
                }
            },
            {
                path:"/login",
                components:{
                    //登录页面
                    UserRouter:Login
                }
            }
            ,
            {
                path:"/regist",
                components:{
                    //注册页面
                    UserRouter:Regist
                }
            },
            {
                path:"/user",
                components:{
                    //用户界面
                    UserRouter:User
                },
                //这里使用子路由和components组合实现子路由跳转
                children:[
                    {
                        path:"/userInfo",
                        components:{
                            //用户界面
                            UserInfoS:UserInfo
                        },
                        

                    },
                    {
                        path:"/userInfoPwd",
                        components:{
                            //用户密码界面
                            UserInfoS:UserInfoPwd
                        }
                    },
                    {
                        path:"/userInfoAlter",
                        components:{
                            //用户信息修改界面
                            UserInfoS:UserInfoAlter
                        }
                    },
                ],
                redirect:"/userInfo"
            },
           
            
            

            {
                path:"/userDespoit",
                components:{
                    //用户充值界面
                    UserRouter:UserDespoit
                }
            },
            {
                path:"/userQuerry",
                components:{
                    //用户查询界面
                    UserRouter:UserQuerry
                }
            },
            //管理员路由
            {
                path:"/admin",
                components:{
                    //管理员信息页面
                    AdminRouter:Admin
                }
            },
                /***
                 * 
                 * 
                 * 管理员水电费管理页面路由
                 * 
                 */
            {
                path:"/adminWE",
                components:{
                    //管理员水电费管理页面
                    AdminRouter:AdminWE
                },
                //设置子路由
                children:[
                    //宿舍水电费增加界面   
                   {
                       path:"/adminWEAdd",
                       components:{
                           AdminUsers:AdminWEAdd
                       }
                   },
                   //宿舍水电费删除界面
                   {
                       path:"/adminWEDelete",
                       components:{
                           AdminUsers:AdminWEDelete
                       }
                   },
                     //宿舍水电费修改界面   
                     {
                       path:"/adminWEAlter",
                       components:{
                           AdminUsers:AdminWEAlter
                       }
                   },
                   //宿舍水电费查询界面
                   {
                       path:"/adminWEQuery",
                       components:{
                           AdminUsers:AdminWEQuery
                       }
                   }
               ]
               ,
               //重定向到水电费查询
               redirect:"/adminWEQuery"
            },
            /***
             * 
             * 管理员用户管理页面路由
             * 
             */
            {
                path:"/adminUser",
                components:{
                    //管理员水电费管理页面
                    AdminRouter:AdminUser
                },
                //设置子路由
                children:[
                    //宿舍管理增加界面   
                   {
                       path:"/adminUserAdd",
                       components:{
                           AdminUsers:AdminUserAdd
                       }
                   },
                   //宿舍管理删除界面
                   {
                       path:"/adminUserDelete",
                       components:{
                           AdminUsers:AdminUserDelete
                       }
                   },
                     //宿舍管理修改界面   
                     {
                       path:"/adminUserAlter",
                       components:{
                           AdminUsers:AdminUserAlter
                       }
                   },
                   //宿舍管理查询界面
                   {
                       path:"/adminUserQuery",
                       components:{
                           AdminUsers:AdminUserQuery
                       }
                   }
               ]
               ,
            //    //重定向到用户查询
               redirect:"/adminUserQuery"
            },

            /***
             * 管理员宿舍管理页面路由
             * 
             */
            {
                path:"/AdminDormitory",
                components:{
                    //管理员宿舍管理页面
                    AdminRouter:AdminDormitory
                },
                //设置子路由
                children:[
                     //宿舍管理增加界面   
                    {
                        path:"/adminDormitoryAdd",
                        components:{
                            AdminDormitorys:AdminDormitoryAdd
                        }
                    },
                    //宿舍管理删除界面
                    {
                        path:"/adminDormitoryDelete",
                        components:{
                            AdminDormitorys:AdminDormitoryDelete
                        }
                    },
                      //宿舍管理修改界面   
                      {
                        path:"/adminDormitoryAlter",
                        components:{
                            AdminDormitorys:AdminDormitoryAlter
                        }
                    },
                    //宿舍管理查询界面
                    {
                        path:"/adminDormitoryQuery",
                        components:{
                            AdminDormitorys:AdminDormitoryQuery
                        }
                    }
                ]
                ,
                //重定向到用户查询
                redirect:"/adminDormitoryQuery"

            }

        ]
    }

)


//路由守卫控制页面的跳转
router.beforeEach(
    (to,from,next)=>{
        const user = userInfoStore();
            //  去登录和注册页面放行
            if(to.path=="/login" || to.path=="/regist" || to.path=="/"){
                next()
            }
            //去user界面需要是登录状态
            if(to.path=="/user" || to.path=="/userDespoit" || to.path=="/userQuerry" ||to.path=="/userInfo" || to.path=="/userInfoPwd" ||to.path=="/userInfoAlter"){
                //判断pinia数据中的userName不为空 则放行
                if(user.userName!="" ){
                    next()
                }
            }
            
            //去管理员界面的身份验证
            if(to.path=="/admin" || to.path=="/adminWE" || to.path=="/adminUser" || to.path=="/AdminDormitory" ){
                if(user.userName!="" && user.userStatus=="1"){
                    next();
                }
            }
            //去管理员用户子界面路由的跳转
            if(to.path=="/adminUserAlter" || to.path=="/adminUserAdd" ||  to.path=="/adminUserDelete" || to.path=="/adminUserQuery" ){
                if(user.userName!="" && user.userStatus=="1"){
                    next();
                }
            }

            //去管理员水电费子界面路由的跳转
            if(to.path=="/adminWEAlter" || to.path=="/adminWEAdd" ||  to.path=="/adminWEDelete" || to.path=="/adminWEQuery" ){
                if(user.userName!="" && user.userStatus=="1"){
                    next();
                }
            }

            //去管理员宿舍子界面路由的跳转
            if(to.path=="/adminDormitoryAdd" || to.path=="/adminDormitoryDelete" ||  to.path=="/adminDormitoryAlter" || to.path=="/adminDormitoryQuery" ){
                if(user.userName!="" && user.userStatus=="1"){
                    next();
                }
            }
    }
)


export default router;//路由